/*
 * Copyright (c) 2000-2003 Yale University. All rights reserved. THIS SOFTWARE IS PROVIDED "AS IS," AND ANY EXPRESS OR IMPLIED WARRANTIES,
 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE EXPRESSLY DISCLAIMED.
 * IN NO EVENT SHALL YALE UNIVERSITY OR ITS EMPLOYEES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED, THE COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED IN ADVANCE OF THE POSSIBILITY OF SUCH DAMAGE.
 * Redistribution and use of this software in source or binary forms, with or without modification, are permitted, provided that the
 * following conditions are met: 1. Any redistribution must include the above copyright notice and disclaimer and this list of conditions in
 * any related documentation and, if feasible, in the redistributed software. 2. Any redistribution must include the acknowledgment, "This
 * product includes software developed by Yale University," in any related documentation and, if feasible, in the redistributed software. 3.
 * The names "Yale" and "Yale University" must not be used to endorse or promote products derived from this software.
 */

package com.phevos.web.cas.client.taglib;

import javax.servlet.jsp.JspTagException;
import javax.servlet.jsp.tagext.BodyTagSupport;

/**
 * <p>
 * Tag for indicating CAS's "validate URL" for the cas:auth tag.
 * </p>
 * 
 * @author Shawn Bayern
 */
public class ValidateUrlTag extends BodyTagSupport
{

    /**
     * 
     */
    private static final long serialVersionUID = 1479878688157206991L;

    // *********************************************************************
    // Tag logic
    /**
     * doEndTag
     * 
     * @return int
     * @throws JspTagException
     */
    public int doEndTag() throws JspTagException
    {
        String validateUrl = null;
        if (bodyContent != null)
            validateUrl = bodyContent.getString();
        if (validateUrl != null)
            validateUrl = validateUrl.trim();
        if (!(getParent() instanceof AuthTag))
            throw new JspTagException("illegal cas:validateUrl outside cas:auth");
        else
            ((AuthTag)getParent()).setCasValidate(validateUrl);
        return EVAL_PAGE;
    }

}
